#ifndef RGBDCamera_kth_H_
#define RGBDCamera_kth_H_
//OpenCV
#include "cv.h"
#include "highgui.h"

//Other
#include <stdio.h>
#include <string.h>
#include "myutils.h"
#include "RGBDFrame.h"
#include "FeatureDescriptor.h"
//#include "./bowmodel/Descriptor.h"
//#include "./bowmodel/Codebook.h"

using namespace std;

class RGBDFrame;

class RGBDCamera_kth
{
	public:
		string storeage_path;
		string data_path;
		FeatureDescriptor ** words;
		int nr_words;
		float angle_width;
		float angle_height;
		float mid_width;
		float mid_height;
		int width;
		int height;
		int nr_frames;
		int current_frame_number;
		double **** transformation_matrixes;
		RGBDCamera_kth();
		RGBDCamera_kth(string datapath, string storepath);
		~RGBDCamera_kth();
		void setup_full_transformation_matrix();
		RGBDFrame * getFrame(int i);
		RGBDFrame * getNextFrame();
		RGBDFrame * getCurrentFrame();
		RGBDFrame * getPreviousFrame();
//		void setCodebook(Codebook * codebook_pos, Codebook * codebook_neg);
		void print();
		void store(string path);
		void load(string path);
		void setup(string datapath, string storepath);

		string ** rgb_list;
		string ** depth_list;
		double * timings;
	private:
		int files_in_dir;
};

#endif
